﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LM.InterfacesFabricas.DTOs;
using LM.InterfacesFabricas.Utilidades;
using LM.Negocio.Objetos;

namespace LM.Repositorios.Conversores
{
    public class ConversorDeVeiculo
    {
        private ConversorDeModelo conversorDeModelo;
        private ConversorDeCliente conversorDeCliente;
        public ConversorDeVeiculo()
        {
            conversorDeModelo = new ConversorDeModelo();
            conversorDeCliente = new ConversorDeCliente();
        }

        public Veiculo Converta(DtoVeiculo dtoVeiculo)
        {
            var veiculo = new Veiculo();

            veiculo.Codigo = dtoVeiculo.Codigo;
            veiculo.Ano = dtoVeiculo.Ano;
            veiculo.Cor = dtoVeiculo.Cor;
            veiculo.Placa = dtoVeiculo.Placa;
            veiculo.Modelo = conversorDeModelo.Converta(dtoVeiculo.Modelo);
            veiculo.Cliente = conversorDeCliente.Converta(dtoVeiculo.Cliente);
            veiculo.TipoDeVeiculo = dtoVeiculo.TipoDeVeiculo;

            return veiculo;
        }

        public DtoVeiculo Converta(Veiculo veiculo)
        {
            if (veiculo != null)
            {
                var dtoVeiculo = new DtoVeiculo();
                dtoVeiculo.Ano = veiculo.Ano;
                dtoVeiculo.Codigo = veiculo.Codigo;
                dtoVeiculo.Cor = veiculo.Cor;
                dtoVeiculo.Placa = veiculo.Placa;
                dtoVeiculo.Modelo = conversorDeModelo.Converta(veiculo.Modelo);
                dtoVeiculo.Cliente = conversorDeCliente.Converta(veiculo.Cliente);
                dtoVeiculo.TipoDeVeiculo = veiculo.TipoDeVeiculo;
                
                return dtoVeiculo;
            }
            return null;
        }
    }
}
